﻿/**
 *
 * @file FITKDynamicStruPostVTK.h
 * @brief 动态分析结果
 * @author LiBaojun (libaojunqd@foxmail.com)
 * @date 2024-05-19
 *
 */
#ifndef __FITKDYNAMICSTRUPOST_H_VTK_H__
#define __FITKDYNAMICSTRUPOST_H_VTK_H__

#include "FITKAbstractStruPostVTK.h"
#include <QStringList>

namespace Interface
{
    /**
     * @brief 动态分析结果
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-05-19
     */
    class FITKInterfaceStructuralPostAPI FITKDynamicStruPostVTK
        : public FITKAbstractStructuralPostVTK
    {
    public:
        /**
         * @brief Construct a new FITKDynamicStruPostVTK object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-19
         */
        explicit FITKDynamicStruPostVTK();
        /**
         * @brief Destroy the FITKDynamicStruPostVTK object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-19
         */
        virtual ~FITKDynamicStruPostVTK() override;
        /**
         * @brief 获取后处理分析类型
         * @return StruPostType
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-19
         */
        StruPostType getPostStructualType() override;
        /**
         * @brief 设置后处理文件列表
         * @param files
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-19
         */
        void setFiles(const QStringList & files);
        /**
         * @brief 下一帧
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-21
         */
        virtual void nextFrame();
        /**
         * @brief 上一帧
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-21
         */
        virtual void previousFrame();
        /**
         * @brief 第一帧
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-21
         */
        virtual void firstFrame();
        /**
         * @brief 最后一帧
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-21
         */
        virtual void lastFrame();
        /**
         * @brief    更新文本[override]
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-03
         */
        virtual void updateText() override;
    private:
        /**
         * @brief 设置文件索引
         * @param[i]  index          文件索引
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-20
         */
        void setFileIndex(const int index);
        /**
         * @brief 获取当前文件索引
         * @return int
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-21
         */
        int getFileIndex();

    private:
        /**
         * @brief 文件列表
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-05-19
         */
        QStringList _fileList{};
    };
}


#endif
